Object.prototype._assign = function (target, ...args) {
    if (target === null) {
        throw 'target cannot be null'
    }
    let result = Object(target);
    args.forEach((obj) => {
        if (obj !== null && Object.prototype.toString.call(obj) === '[object Object') {
            for (let key in obj) {
                // 过滤掉原型里面的属性
                if (obj.hasOwnProperty(key)) {
                    result[key] = obj[key]
                }
            }
        }
    })

    return result;
}